/*
* acooly.cn Inc.
* Copyright (c) 2017 All Rights Reserved.
* create by ouwen
* date:2017-09-26
*/
package com.yiji.fintech.musfinance.entity;


import com.acooly.core.utils.Money;
import com.yiji.fintech.musfinance.base.enums.CardTypeEnum;
import com.yiji.fintech.musfinance.base.enums.CertTypeEnum;
import com.yiji.fintech.musfinance.base.enums.CurrencyEnum;
import com.yiji.fintech.musfinance.base.enums.PersonalCorporateTypeEnum;
import com.yiji.fintech.musfinance.common.enums.ReviewStatusEnum;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * center_transaction_withdraw Entity
 *
 * @author ouwen
 * Date: 2017-09-26 14:23:25
 */
@Getter
@Setter
@Entity
@Table(name = "center_transaction_withdraw")
public class TransactionWithdraw extends AbstractTransaction {

	/** 付款账户名 */
	@Size(max=128)
    private String payAccountName;

	/** 付款账号 */
	@Size(max=32)
    private String payAccountNo;

	/** 付款银行名称 */
	@Size(max=64)
    private String payBankName;

	/** 付款银行编码 */
	@Size(max=16)
    private String payBankId;

	/** 收款银行编码 */
	@Size(max=16)
    private String recBankId;

	/** 收款账号 */
	@Size(max=32)
    private String recAccountNo;

	/** 收款账户名 */
	@Size(max=128)
    private String recAccountName;

	/** 收款证件类型 */
	@Enumerated(EnumType.STRING)
    private CertTypeEnum recCertType;

	/** 收款证件号 */
	@Size(max=32)
    private String recCertNo;

	/** 收款方手机号 */
	@Size(max=16)
    private String recMobileNo;

	/** 收款银行名称 */
	@Size(max=64)
    private String recBankName;

	/** 收款银行所在省市 */
	@Size(max=64)
    private String recBankProvince;

	/** 收款银行所在城市 */
	@Size(max=64)
    private String recBankCity;

	/** 收款方银联号 */
	@Size(max=64)
    private String recUnionBankNo;

	/** 收款卡号类型 */
	@Enumerated(EnumType.STRING)
    private CardTypeEnum recCardType;

	/** 收款账户类型 */
	@Enumerated(EnumType.STRING)
    private PersonalCorporateTypeEnum recAccountType;

	/** 渠道API */
	@Size(max=32)
    private String gatewayChannelApi;

	/** 交易时间 */
    private Date transTime;

	/** 币种 */
	@Enumerated(EnumType.STRING)
    private CurrencyEnum currency;

	/** 提现申请交易金额 */
    private Money amount;

	/** 提现成功金额 */
    private Money amountIn;

	/** 发送网关时间 */
    private Date gatewayTime;

	/** 扩展字段 */
	@Size(max=4000)
    private String extendFields;

	/** 清算时间 */
    private Date settleTime;

	/** 审核人 */
	@Size(max=64)
    private String reviewer;

	/** 审核状态 */
    @Enumerated(EnumType.STRING)
    private ReviewStatusEnum reviewStatus;

	/** 提现用途 */
	@Size(max=50)
    private String transUsage;

	/** 判断是否为充退转提现交易 */
	@Size(max=255)
    private String withdrawFlag;

	/** 备注 */
	@Size(max=255)
    private String remark;

	/** 操作人id */
	@Size(max=60)
    private String operaterId;

	/** 操作人名称 */
	@Size(max=60)
    private String operaterName;

	/** 操作时间 */
    private Date operaterTime;

}
